const path = require('path') // 引入path模块
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i
function resolve(dir) {
  return path.join(__dirname, dir) // path.join(__dirname)
}

module.exports = {
  // baseUrl: '../', 已废弃
  outputDir: '../dist', // 设置打包目录
  publicPath: './', // 设置相对路径
  productionSourceMap: false, // 不需要map文件
  // productionGzip: true, // 开启压缩
  chainWebpack: (config) => {
    // set第一个参数：设置的别名，第二个参数：设置的路径
    config.resolve.alias.set('@', resolve('./src'))
    // 配置压缩
    config.plugin('compressionPlugin').use(
      new CompressionWebpackPlugin({
        filename: '[path].gz[query]',
        algorithm: 'gzip',
        test: productionGzipExtensions, // 匹配文件名
        // test: /\.js$|\.html$|.\css/,
        threshold: 10240, // 对超过10k的数据压缩
        minRatio: 0.8,
        deleteOriginalAssets: false // 删除源文件
      })
    )
  }
}
